package cn.darkhorse.workflow.core;

/**
 * 工作流类型
 * @author yuanjun
 * @since 2020/7/20 15:19
 */
public enum  WorkflowType {
    
    /**
     * 变更
     */
    SUPPLIER_CHANGE_INFO(8L),
    /**
     * 黑名单
     */
    SUPPLIER_BLACKLIST (7L),
    /**
     * 合格评估
     */
    SUPPLIER_AND_TYPE(6L),
    /**
     * 基本信息
     */
    SUPPLIER_INFO(5L),
    
    /**
     * 甲供材
     */
    MATERIAL_PARTYA(10L),
    /**
     * 入库单
     */
    MATERIAL_WAREHOUSING(11L),
    /**
     * 出库单
     */
    MATERIAL_EX_WAREHOUSE(12L),
    /**
     * 出库入库单
     */
    MATERIAL_IN_OUT_HOUSE(13L),
    
    /**
     * 需用计划送审
     */
    MATERIAL_DEMAND_PLANNING(14L),
    /**
     * 现场签证
     */
    CONTRACT_SITE_VISA(15L),
    /**
     * 现场签证确认
     */
    CONTRACT_SITE_VISA_CONFIRM(16L),

    /**
     * 设计变更
     */
    CONTRACT_DESIGN_CHANGE(17L),
    /**
     * 设计变更确认
     */
    CONTRACT_DESIGN_CHANGE_CONFIRM(18L),
    /**
     * 合同变更
     */
    CONTRACT_CHANGE(19L),

    /**
     * 合同扣款
     */
    CONTRACT_DEDUCTION(20L),
    /**
     * 合同档案
     */
    CONTRACT(21L),

    /**
     * 合同请款
     */
    CONTRACT_REQUEST_FUNDS(22L),
    
    /**
     * 成本调整
     */
    COST_TARGET_ADJUSTMENT(24L),
    
    /**
     * 成本结转
     */
    COST_TARGET_CARRY_FORWARD(25L),
    /**
     * 成本预备费
     */
    COST_TARGET_RESERVE_FUND(26L),
    /**
     * 成本编制
     */
    COST_TARGET(27L),
    /**
     * 质保金
     */
    CONTRACT_WARRANTY(28L),
    /**
     * 奖励
     */
    CONTRACT_BONUS(29L),
    
    /**
     * 付款
     */
    CONTRACT_PAYMENT(30L),
    
    /**
     * 合同计划调整
     */
    CONTRACT_ADJUSTMENT_PLAN(31L),
    /**
     * 合同材料调整
     */
    CONTRACT_ADJUSTMENT_MATERIAL(32L),
    
    /**
     * 费用请款
     */
    CONTRACT_FEE_PAYMENT(33L),
    /**
     * 结算
     */
    CONTRACT_SETTLEMENT(34L),
    /**
     * 发票信息
     */
    CONTRACT_INVOICE(35L),
    
    /**
     * 需用计划汇总送审
     */
    MATERIAL_DEMAND_PLANNING_SUM(36L),

    /**
     * 合同异动
     */
    CONTRACT_TRANSACTION(38L),
    /**
     * 甲供材计划调整
     */
    MATERIAL_PARTYA_ADJUSTMENT(39L),
    /**
     *材料管理--合同
     */
    MATER_CONTRACT(41L),
    /**
     *材料管理--入库
     */
    MATER_WAREHOUSE(42L),
    /**
     *材料管理--出库
     */
    MATER_RETRIEVAL(43L),
    /**
     *材料管理--收料
     */
    MATER_RECEIVING(44L),
    /**
     *材料管理--领料
     */
    MATER_PICKING(45L),
    /**
     *材料管理--领料
     */
    MATER_INVOICE(46L), /**
     * 材料管理--要料
     */
    MATER_REQUISITION(47L)
    ;

    private Long type;

    private WorkflowType(Long type) {
        this.type = type;
    }

    public Long getType() {
        return this.type;
    }

    /**
     * 通过属性查询名字
     * @param type
     * @return
     */
    public static WorkflowType getStatusEnum( Long  type) {
        for(WorkflowType statusEnum : WorkflowType.values()){
            if (statusEnum.getType().equals(type)){
                return  statusEnum;
            }
        }
        return null ;
    }
}
